import numpy as np

def multy(r,c):
    return (r+1) * (c+1)  # 因为索引是从0 开始，所以需要加上1

a = np.fromfunction(multy,(10,10),dtype=np.int16)
print(a)

# 当然，也可以使用lambda函数编写更紧凑的代码
# a = np.fromfunction(lambda r,c:(r+1)*(c+1),(10,10),dtype=np.int16)

s = str(a)
s = s.replace('[','').replace(']','')
s = ' '+s
# print(s)

A = np.arange(16).reshape(4,4)  # reshape重新排列

# 等同于下面的代码
# A = np.fromfunction(lambda r,c:r*4+c,(4,4))

B = np.eye(4,dtype='int16')  # 对角线为1的 4*4数组

C = A * 10  # 对A中的每个元素x10生成一个新的数组

D = A * A  # A平方的数组


